The present invention relates to a method for managing a buffer which is intended to exchange data between processing entities in a system that may have a plurality of processing entities, and a buffer management apparatus.
A multiprocessor system, or a system that includes a plurality of processors, can perform processing in parallel or in a cooperative fashion to achieve speedup of the entire processing. Parallel cooperative processing entails data exchange between processors. Processors called producers generate data, which are passed to processors called consumers and are processed by the consumers. The efficiency of the entire system varies depending on how the data exchange between the producers and the consumers is devised.
Aside from multiprocessor systems, data exchange also occurs between tasks in a multitask environment (including multiprocesses and multithreads). In the following description of this specification, processors, tasks, and the like that exchange data with each other will be referred to as processing entities. In the case of multitasking, tasks serve as either of producers and consumers. As with the data exchange between processors, the efficiency of the entire system varies depending on how the data exchange between tasks is devised.